# Лекция: Классы и объекты в Java

В Java всё является объектом, который является экземпляром класса. Класс - это шаблон или схема, используемая для создания объектов. Он определяет, какие данные и методы будут иметь объекты.

## Определение класса

Класс определяется с помощью ключевого слова `class`.

```java
class MyClass {
    // поля
    int myField;

    // методы
    void myMethod() {
        // код метода
    }
}
```

## Создание объектов

Объекты создаются с помощью ключевого слова `new`.

```java
MyClass myObject = new MyClass();
```

## Доступ к полям и методам

Поля и методы объекта доступны с помощью оператора `.`.

```java
myObject.myField = 10;
myObject.myMethod();
```

---

# Практические задания

1. **Создайте класс `Dog` с полем `name` и методом `bark`, который выводит сообщение "Woof!". Создайте объект этого класса и вызовите его метод.** (Сложность: 1/5)
```java
class Dog {
    String name;

    void bark() {
        System.out.println("Woof!");
    }
}

Dog myDog = new Dog();
myDog.bark();
```

2. **Создайте класс `Car` с полями `brand` и `model`, и методом `honk`, который выводит сообщение "Beep!". Создайте объект этого класса, установите его поля и вызовите его метод.** (Сложность: 2/5)
```java
class Car {
    String brand;
    String model;

    void honk() {
        System.out.println("Beep!");
    }
}

Car myCar = new Car();
myCar.brand = "Toyota";
myCar.model = "Corolla";
myCar.honk();
```

3. **Создайте класс `Rectangle` с полями `width` и `height`, и методом `getArea`, который возвращает площадь прямоугольника. Создайте объект этого класса, установите его поля и выведите его площадь.** (Сложность: 2/5)
```java
class Rectangle {
    int width;
    int height;

    int getArea() {
        return width * height;
    }
}

Rectangle myRectangle = new Rectangle();
myRectangle.width = 10;
myRectangle.height = 20;
System.out.println(myRectangle.getArea());
```

4. **Создайте класс `Circle` с полем `radius`, и методами `getArea` и `getCircumference`, которые возвращают площадь и длину окружности соответственно. Создайте объект этого класса, установите его поле и выведите его площадь и длину окружности.** (Сложность: 3/5)
```java
class Circle {
    double radius;

    double getArea() {
        return Math.PI * radius * radius;
    }

    double getCircumference() {
        return 2 * Math.PI * radius;
    }
}

Circle myCircle = new Circle();
myCircle.radius = 5.0;
System.out.println(myCircle.getArea());
System.out.println(myCircle.getCircumference());
```

5. **Создайте класс `Student` с полями `name` и `grade`, и методом `pass`, который увеличивает оценку студента на 1. Создайте объект этого класса, установите его поля, вызовите его метод и выведите его оценку.** (Сложность: 3/5)
```java
class Student {
    String name;
    int grade;

    void pass() {
        grade++;
    }
}

Student myStudent = new Student();
myStudent.name = "John";
myStudent.grade = 5;
myStudent.pass();
System.out.println(myStudent.grade);
```